/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Logistica.Controlador;

import CharliesCookies.MainController;
import com.dp1.pucp.Modelo.Clases.*;
import com.dp1.pucp.Logistica.DAO.*;
import com.dp1.pucp.Logistica.Vista.*;
import com.dp1.pucp.Seguridad.DAO.LogDAO;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

/**
 *
 * @author ubuntu64
 */
public class MantAlmacenControlador {
    private TipoProductoDAO m;
    private MantAlmacenGUI2 mantAlmacenView;
    private ArrayList<Almacen> lstAlmacen;
    private Almacen almacen;
    private ArrayList<String> lstTipo;
    private final static int ESTADO_ACTIVO=1;
    private final static int ESTADO_INACTIVO=0;
        
    public MantAlmacenControlador(TipoProductoDAO dao, MantAlmacenGUI2 v){
        m = dao;
        mantAlmacenView = v;
       
        llenarTipoCombo();
        mantAlmacenView.addBuscarListener(new listarAlmacenes() );
        mantAlmacenView.addEditarListener(new editarTipoProductoListener(this));
        mantAlmacenView.addNuevoListener(new crearAlmacenListener(this));
        mantAlmacenView.addLimpiarListener(new limpiarListener());
        mantAlmacenView.addELiminarListener(new eliminarListener());
    }
    
    private void llenarTipoCombo(){
        lstTipo = m.listarTipo();
        mantAlmacenView.llenaComboTipo(lstTipo);
    }      

    public void listarResultados(){
         
        int tipo=mantAlmacenView.getEstado();
        String Stipo="";
        
        if(tipo==0)
            Stipo="Seleccionar";
        if(tipo==1)
            Stipo="MP"; 
        if(tipo==2)
            Stipo="PI"; 
        if(tipo==3)
            Stipo="PF"; 
        
        
        lstAlmacen = m.listarAlmacen2(Stipo);               
        mantAlmacenView.llenaGrilla(lstAlmacen);        
    }
    
    class listarAlmacenes implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e) {
            listarResultados();
        }
    } 
    
    class crearAlmacenListener implements ActionListener {
        
        private MantAlmacenControlador buc;
        public crearAlmacenListener(MantAlmacenControlador buscarusr){
            buc=buscarusr;
        }
                
        @Override
        public void actionPerformed(ActionEvent e) {
            AlmacenGUI p = new AlmacenGUI(mantAlmacenView.getPadre(), true);
            AlmacenControlador c = new AlmacenControlador (m,p,buc,null);
            LogDAO.insertarLog(MainController.usuario, "Ingresar Agregar Almacen");
            p.setVisible(true);
        }
    
    }    
    
    class editarTipoProductoListener implements ActionListener {
        
        private MantAlmacenControlador buc;
        public editarTipoProductoListener(MantAlmacenControlador buscarusr){
            buc=buscarusr;
        }
        @Override
        public void actionPerformed(ActionEvent e) {            
            int sel=mantAlmacenView.getFilaSel();
            if (sel!=-1){
                AlmacenGUI p = new AlmacenGUI(mantAlmacenView.getPadre(), true);
                Almacen u = lstAlmacen.get(sel);                
                AlmacenControlador c = new AlmacenControlador (m,p,buc,u);
                LogDAO.insertarLog(MainController.usuario, "Ingresar Editar Almacen");
                p.setVisible(true);                
            }
        }
    
    } 
        
    class limpiarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            mantAlmacenView.LimpiarDatos();
        }        
    }    
    
    class eliminarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            int sel=mantAlmacenView.getFilaSel();
            if (sel!=-1){
//                if (mantAlmacenView.solicitarConfirmacion("¿Desea inactivar este usuario?")==0){
                      Almacen u = lstAlmacen.get(sel); 
                      u.setEstado(ESTADO_INACTIVO);
                      m.guardarAlmacen(u);
//                    mantAlmacenView.mostrarAviso("Se inactivó el usuario con éxito");
                      mantAlmacenView.mostrarAviso("Se elimino exitosamente el almacen");
                      LogDAO.insertarLog(MainController.usuario, "Eliminar Almacen");
                      listarResultados();
//                }
//            }
//            else{
//                mantAlmacenView.mostrarError("Debe seleccionar un usuario");
            }
        }        
    }       
    
    class activarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            int sel=mantAlmacenView.getFilaSel();
            //if (sel!=-1){
                //if (mantAlmacenView.solicitarConfirmacion("¿Desea reactivar este usuario?")==0){                
                    Almacen u = lstAlmacen.get(sel);
                    u.setEstado(ESTADO_ACTIVO);
                    m.guardarAlmacen(u);
                    //mantAlmacenView.mostrarAviso("Se reactivó el usuario con éxito");
                    listarResultados();
                //}
            }
            //else{
             //mantAlmacenView.mostrarError("Debe seleccionar un usuario");   
            //}               
        //}        
    }
}
